from calc import add, sub
import pytest, logging

# 日志举例：  info<warning<error (从小到大的日志级别)
# logging.info('记录成功日志')
# logging.warning('警告')  #警告是默认日志级别
# logging.error('错误')
cases = [[1, 2, -1], [1, 0, 1], [2, 1, 1]]


@pytest.mark.parametrize('a,b,expect', cases)
def test_sub(a, b, expect):
    try:
        actual = sub(a, b)
        assert actual == expect  # 断言失败时，会抛出异常（报错）
        logging.info(f'{a},{b},{expect}==测试通过')  # 断言成功时才做词句，断言失败时不做
    except BaseException as e:
        logging.warning(f'{a},{b},{expect}==测试失败==实际：{actual}')
        raise AssertionError   #抛出断言异常,不能省略
if __name__ == '__main__':
    pytest.main(['--tb=short','--log-format=%(asctime)s [%(levelname)s] %(message)s [%(filename)s:%(lineno)s]'
,'--log-date-format=%Y-%m-%d %H:%M:%S', '--html=calc.html', 'ceshi_calc4.py'])  #--log-format,--log-date-format指定报告中的日志格式
